package com.ft;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;


/**
 * 说明：
 * @EnableEurekaClient配置本应用将使用服务注册和服务发现，注意：注册和发现用这一个注解。
 * @EnableHystrix表示启用断路器，断路器依赖于服务注册和发现。
 * 
 * 断路器的基本作用就是@HystrixCommand注解的方法失败后，系统将自动切换到fallbackMethod方法执行。
 * 断路器Hystrix具备回退机制、请求缓存和请求打包以及监控和配置等功能。
 * @EnableHystrix 与 @EnableCircuitBreaker等价
 * @EnableHystrixDashboard 启用对Hystrix的监控功能
 * @author lc
 *
 */
@SpringBootApplication
@EnableEurekaClient
@EnableHystrix	
//@EnableHystrixDashboard
public class CloudWebUserApplication {

	public static void main(String[] args) {
		SpringApplication.run(CloudWebUserApplication.class, args);
	}
	
	@LoadBalanced
	@Bean
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
}
